package game.worlds;

import echo.Body;

interface IDisplay {
	/**
	 * 当前世界，如果不在世界中，则返回`null`
	 */
	public var world:World;

	/**
	 * 角色碰撞块
	 */
	public var body(default, set):Body;

	/**
	 * 攻击的碰撞块预设，如果不存在`hitBody`，则意味着该对象无法被攻击
	 */
	public var hitBody(default, set):Body;

	/**
	 * 判断检测碰撞条件
	 * @param body 
	 * @return Bool
	 */
	public function condition(body:Body):Bool;

	/**
	 * 碰撞触发
	 * @param body 
	 */
	public function enter(body:Body):Void;

	/**
	 * 坐标X
	 */
	public var x(get, set):Float;

	/**
	 * 坐标Y
	 */
	public var y(get, set):Float;

	/**
	 * 设置坐标
	 * @param x 
	 * @param y 
	 */
	public function setPoint(x:Float, y:Float):Void;

	/**
	 * 缩放比例X
	 */
	public var scaleX(get, set):Float;

	/**
	 * 缩放比例Y
	 */
	public var scaleY(get, set):Float;

	/**
	 * 角度旋转
	 */
	public var rotation(get, set):Float;

	/**
	 * 透明度
	 */
	public var alpha(get, set):Float;

	/**
	 * 名称
	 */
	public var name(get, set):String;

	/**
	 * 清理的统一入口
	 */
	public function clean():Void;

	/**
	 * 当被清理时触发
	 */
	public function onClean():Void;
}
